#!/usr/bin/smjs

var filas = 5;
var columnas = 5;

var fib1 = 1;
var fib2 = 0;

//Clase fila
function Fila(){
  this.array = new Array();
  this.toString = toString;
}

//Imprime la fila por pantalla
function toString(){
	print(marca( 'tr' ));
	for(var i=0; i<this.array.length; i=i+1){
		print(marca("td")+this.array[i]+finmarca("td"));
	}
	print(finmarca( 'tr' ));
}

function marca( m ) {
  return "<"+m+">";
}

function finmarca( m ) {
  return "</"+m+">";
}

var lista_filas = new Array(filas);

/*Primero rellenamos los elementos de las filas (con la sucesión de Fibonacci).
 * He decidido separar el rellenado de filas de su impresión por pantalla para
 * hacer el programa más versátil a la hora de modificarlo para incluirlo en una
 * tarea más compleja.*/
for(var i=0; i<filas; i=i+1){
	var fila = new Fila();
	for(var j=0; j<columnas; j=j+1){
		fila.array.push(fib2);
		var t = fib1 + fib2;
		fib1 = fib2;
		fib2 = t;
	}
	lista_filas[i] = fila;
}

//Imprimimos la tabla
print( marca('table'));

for(var i=0; i<filas; i=i+1){
	lista_filas[i].toString();
}

print (finmarca('table'));



